﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Praxis.Entities;
using System.Data;

namespace Praxis.Repository
{
    public class DevolucionDAO: MasterRepository, IDevolucionDAO
    {
        public List<DEVOLUCION> GetAllDevoluciones()
        {
            var query = from c in Context.DEVOLUCIONs
                        .Include("ENTREGA")
                        select c;
            return query.ToList();
        }

        public List<DEVOLUCION> GetFromDevolucionbyCriterio(string criterio)
        {
            var query = from c in Context.DEVOLUCIONs
                        .Include("ENTREGA")
                        select c;

            if (criterio != null)
            {
                query = query.Where(p => p.ENTREGA.ALQUILER.CLIENTE.NombreRazonSocial.ToUpper().Contains(criterio.ToUpper()));
            }
            return query.ToList();
        }

        public DEVOLUCION GetFromDevolucionById(int id)
        {
            return Context.DEVOLUCIONs.Find(id);
        }

        public void AddDevolucion(DEVOLUCION devolucion)
        {
            foreach (var item in devolucion.DETALLE_DEVOLUCION)
            {
                //Context.Entry(item).State = EntityState.Unchanged;
                Context.Entry(item).State = EntityState.Added;
            }

            Context.Entry(devolucion).State = EntityState.Unchanged;



            Context.DEVOLUCIONs.Add(devolucion);
            Context.SaveChanges();
        }

        public void UpdateDevolucion(DEVOLUCION devolucion)
        {
            throw new NotImplementedException();
        }
    }
}
